import logging

from comp_cab_setup_modules.system import user, run_command


def get_suffix() -> str:
    """
    Получение суффикса для имён хостов в локальной сети из файла конфига. По умолчанию .local
    @return: строка, содержащая текущий суффикс
    """
    try:
        suffix_cmd_res = run_command(f'py-ini-config is_set "{ini_file_path}" Main Suffix 2>&1; echo $?; '
                             f'py-ini-config get "{ini_file_path}" Main Suffix').split('\n')
        # пробелы встречаются во фразах вроде "File not found"
        if suffix_cmd_res[0].strip() != '0':
            logging.info(f'Не удалось получить суффикс из файла или его значени некорректно. '
                         f'Установлено значение .local')
            suffix = '.local'
            run_command(f'py-ini-config set -c "{ini_file_path}" Main Suffix .local')
        elif len(suffix_cmd_res) > 1:
            suffix = suffix_cmd_res[1].strip()
            logging.info(f'Установлено значение суффикса {suffix}')
        else:
            suffix = ''
            logging.info(f'Установлен пустой суффикс')

    except Exception as e:
        logging.info(f'Не удалось получить суффикс, {e}\nУстановлен суффикс .local')
        run_command(f'py-ini-config set -c "{ini_file_path}" Main Suffix .local')
        suffix = '.local'

    return suffix


config_path = f'/home/{user}/.teacher_control'
hosts_file_path = f'{config_path}/hosts.json'
setup_hosts_file_path = f'{config_path}/setup_hosts.json'
ini_file_path = f'{config_path}/ccs.conf'
version = "3.1"
icon_file = 'comp-cab-setup.svg'
style = "style.css"
suffix = get_suffix()
hostname_expression = r"(s[cmnpt][\w\d]+)(-[\w\d]+){1,3}" + suffix
ip_expression = r"((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$"
